# 使用官方的Go基础镜像，版本为1.21
FROM golang:1.21

# 在容器内创建一个工作目录/app
WORKDIR /app

# 将当前目录下的所有文件复制到容器内的/app目录
COPY . /app

# 设置环境变量，指定Go模块代理（可选，但可以加快模块下载速度）
ENV GOPROXY=https://goproxy.cn,https://mirrors.aliyun.com/goproxy/,https://goproxy.bj.bcebos.com/,direct

# 构建Go程序，执行go build命令，生成可执行文件（假设可执行文件名为main）
RUN cd /app/cmd && go build -o main .

# 暴露容器的8080端口，因为Go程序监听8080端口
EXPOSE 8080

# 定义容器启动时要执行的命令，运行刚刚构建的main可执行文件
CMD ["/app/cmd/main"]